package br.com.vertigo.sgci.entity;

// Generated 15/10/2008 18:19:42 by Hibernate Tools 3.2.2.GA

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.validator.NotNull;

/**
 * Projetotipoitem generated by hbm2java
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "projetotipoitem", catalog = "sgci_project")
public class Projetotipoitem implements java.io.Serializable {

	private Long idProjetotipoitem;
	private Tipoitem tipoitem;
	private Projeto projeto;
	private double valorReembolsoDiaUtil;
	private double valorReembolsoDiaEspecial;
	private Set<Itemrdv> itemrdvs = new HashSet<Itemrdv>(0);

	public Projetotipoitem() {
	}

	public Projetotipoitem(Tipoitem tipoitem, Projeto projeto,
			double valorReembolsoDiaUtil, double valorReembolsoDiaEspecial) {
		this.tipoitem = tipoitem;
		this.projeto = projeto;
		this.valorReembolsoDiaUtil = valorReembolsoDiaUtil;
		this.valorReembolsoDiaEspecial = valorReembolsoDiaEspecial;
	}

	public Projetotipoitem(Tipoitem tipoitem, Projeto projeto,
			double valorReembolsoDiaUtil, double valorReembolsoDiaEspecial,
			Set<Itemrdv> itemrdvs) {
		this.tipoitem = tipoitem;
		this.projeto = projeto;
		this.valorReembolsoDiaUtil = valorReembolsoDiaUtil;
		this.valorReembolsoDiaEspecial = valorReembolsoDiaEspecial;
		this.itemrdvs = itemrdvs;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "ID_PROJETOTIPOITEM", unique = true, nullable = false)
	public Long getIdProjetotipoitem() {
		return this.idProjetotipoitem;
	}

	public void setIdProjetotipoitem(Long idProjetotipoitem) {
		this.idProjetotipoitem = idProjetotipoitem;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_TIPOITEM", nullable = false)
	@NotNull
	public Tipoitem getTipoitem() {
		return this.tipoitem;
	}

	public void setTipoitem(Tipoitem tipoitem) {
		this.tipoitem = tipoitem;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_PROJETO", nullable = false)
	@NotNull
	public Projeto getProjeto() {
		return this.projeto;
	}

	public void setProjeto(Projeto projeto) {
		this.projeto = projeto;
	}

	@Column(name = "VALOR_REEMBOLSO_DIA_UTIL", nullable = false, precision = 22, scale = 0)
	@NotNull
	public double getValorReembolsoDiaUtil() {
		return this.valorReembolsoDiaUtil;
	}

	public void setValorReembolsoDiaUtil(double valorReembolsoDiaUtil) {
		this.valorReembolsoDiaUtil = valorReembolsoDiaUtil;
	}

	@Column(name = "VALOR_REEMBOLSO_DIA_ESPECIAL", nullable = false, precision = 22, scale = 0)
	@NotNull
	public double getValorReembolsoDiaEspecial() {
		return this.valorReembolsoDiaEspecial;
	}

	public void setValorReembolsoDiaEspecial(double valorReembolsoDiaEspecial) {
		this.valorReembolsoDiaEspecial = valorReembolsoDiaEspecial;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "projetotipoitem")
	public Set<Itemrdv> getItemrdvs() {
		return this.itemrdvs;
	}

	public void setItemrdvs(Set<Itemrdv> itemrdvs) {
		this.itemrdvs = itemrdvs;
	}

}
